/* $Id: //depot/MNS/QuickLink/server/main/toolkit/src/java/net/digitalxpert/quicklink/exception/D3ExceptionInterface.java#1 $
 * $DateTime: 2006/03/07 13:52:51 $
 * $Change: 6772 $
 * $Author: grouzintsev $
 */
package com.digitalxpert.jargle.exc;

import java.util.Locale;

/**
 * ������� ��������� ��� ����������, ������������ � ������� D3.
 * <p/>
 * ������ ���������� ������� � ����������� ��� �������, � ������� �������� �������������� ��������
 * � ���������� � ������ ����� ������ ����� ���� ��������.
 * <p/>
 * ����� ���������� ������ ���������� ��������� �������� ��������. ��� ����������
 * "�����������������" ������ ������ ���� ������������� �������������� ������ ����� ��������.
 * <h3>�����!</h3>
 * �� ������ ����� ����� ����������� � ����������� �� ������������, �� ������������� ���������
 * ��������� ������� ��������:
 * <ul>
 * <li>� �������� ���� ������ ������������ ��� ������ 3-�� ������ � ������� ��������. �������� ���
 * <i>com.grou.cdrs</i> ��� <i>CDRS</i></li>
 * <li>� �������� ���� ������ ������������ ����������� �������� ��� � ����������� ������,
 * ���� ������� ����. ��������� ������ ������ ���������, ��� ��������� ������������ ����������� ���
 * ��������� ������������� ��������.</li>
 * <li>�������������� �������� ������ ����������� � ����� <i>errorlist.properties</i> � ��������
 * ������ ������. � �������� ����� ������������ ��� ������, � � �������� �������� � ��������.
 * ����� ������� �������� ��� ������: �������� ������ ������ � ����������� ����������� �����.</li>
 * </ul>
 */
public interface D3ExceptionInterface {
    String getModuleCode();

    String getErrorCode();

    /**
     * ��� ������������ ��������� ������������ �����
     * {@link java.text.MessageFormat#format(java.lang.String, java.lang.Object[])}.
     * � �������� �������� ������������ �������� �� <code>errorlist.properties</code>, ���������
     * � ����� ������. ������ errorlist.properties ����������� ��� �������
     * {@link java.util.ResourceBundle}.
     * <p/>
     * ���� �� �����-�� ����� ������������ ��������� ��������� ������, �� ������������
     * ����������� �������� ������������ ��������� �� ������.
     *
     * @return ��������� �� ������.
     */
    String getMessage();

    String getLocalizedMessage(Locale aLocale);

    /**
     * ���������� "���������" ��������� ����:<br/>
     * MODULE_CODE-ERROR_CODE:&nbsp;MESSAGE
     *
     * @return "���������" ���������.
     */
    String getCompleteMessage();

    /**
     * ���������� "���������" � �������������� ��������� ����:<br/>
     * MODULE_CODE-ERROR_CODE:&nbsp;MESSAGE
     *
     * @param aLocale ����������� "������".
     * @return "���������" � �������������� ���������.
     */
    String getCompleteLocalizedMessage(Locale aLocale);

    /**
     * ���������� ������ ���������� ��� ������������ ���������.
     * @return ������ ���������� ��� <code>null</code> ���� �� ��������� ������������� ����������.
     * @see #getMessage()
     */
    Object[] getMessageArguments();
}
